package com.sdry.service.impl.jyy;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.sdry.mapper.jyy.SimpleMepper;
import com.sdry.model.jyy.SimpleJyy;
import com.sdry.model.lz.Customer;
import com.sdry.service.jyy.SimpleServise;

/**
 * 精简库存操作业务层实现类
 * @author jyy
 *2019-09-08 11:04:30
 */
@Service
@Transactional
public class SimpleServiseImpl implements SimpleServise {
	
	@Resource
	private SimpleMepper simpleMepper;

	/**
	 * 根据产品码查询精简库缓存区物料信息
	 * @param sqd
	 * @return 精简库实体集合
	 */
	@Override
	public List<SimpleJyy> selectMaFromHc(String sqd) {
		return simpleMepper.selectMaFromHc(sqd);
	}

	/**
	 * 查询库存是否存在同一库位、同一物料、同一批次的信息
	 * @param onlyCount 精简库实体
	 * @return 精简库实体
	 */
	@Override
	public SimpleJyy selectByAll(SimpleJyy onlyCount) {
		return simpleMepper.selectByAll(onlyCount);
	}

	/**
	 * 添加一条精简库存信息
	 * @param onlyCount 精简库实体
	 * @return 影响行数
	 */
	@Override
	public int insertOnlyCount(SimpleJyy onlyCount) {
		return simpleMepper.insertOnlyCount(onlyCount);
	}

	/**
	 * 修改精简库存信息
	 * @param onlyCountAlredy 精简库实体
	 * @return 影响行数
	 */
	@Override
	public int updateOnlyCount(SimpleJyy onlyCountAlredy) {
		return simpleMepper.updateOnlyCount(onlyCountAlredy);
	}

	/**
	 * 为下架在库存中根据物料产品码和库位查询
	 * @param onlyCount 精简库实体
	 * @return 精简库实体集合
	 */
	@Override
	public List<SimpleJyy> selectMaFromDown(SimpleJyy onlyCount) {
		return simpleMepper.selectMaFromDown(onlyCount);
	}

	@Override
	public int simpleDown(SimpleJyy onlyCount) {
		return simpleMepper.simpleDown(onlyCount);
	}

	@Transactional
	@Override
	public int allSimpleDown(List<SimpleJyy> list) {
		int affact = 0;
		for (SimpleJyy onlyCount : list) {
			affact = simpleMepper.simpleDown(onlyCount);
		}
		return affact;
	}

	/**
	 * 在批量库存中查询所有未拆箱的物料及数量 根据供应商
	 * @param customerId 供应商id
	 * @return 库存实体集合
	 */
	@Override
	public List<SimpleJyy> selectPackingMa(Long customerId) {
		return simpleMepper.selectPackingMa(customerId);
	}

	/**
	 * 拆箱下架
	 * @param simpleJyy
	 * @return
	 */
	@Override
	public int simpleDown2(SimpleJyy simpleJyy) {
		return simpleMepper.simpleDown2(simpleJyy);
	}

	/**
	 * 根据条件分页查询批量库存
	 * @param simpleJyy 条件
	 * @return 库存实体集合
	 */
	public List<SimpleJyy> findSimpleJyyPageByMution(SimpleJyy simpleJyy){
		return simpleMepper.findSimpleJyyPageByMution(simpleJyy);
	}
	/**
	 * 根据条件查询批量库存条数（配合分页）
	 * @param simpleJyy 条件
	 * @return 条数
	 */
	public Integer selectSimpleJyyCountByMution(SimpleJyy simpleJyy){
		return simpleMepper.selectSimpleJyyCountByMution(simpleJyy);
	}
	
	/**
	 * 供应商实体集合(条码类型为：无条码)
	 */
	@Override
	public List<Customer> selectAllCustomerListByCodeType() {
		return simpleMepper.selectAllCustomerListByCodeType();
	}
	/**
	 * 供应商实体集合(条码类型为：系统码或供应商码)
	 */
	@Override
	public List<Customer> selectAllCustomerListByCodeType2() {
		return simpleMepper.selectAllCustomerListByCodeType2();
	}
}
